/**
 * 能量矿信息
 */
export interface SourceInfo {
    /**
     * 该矿的容器 id
     */
    containerId?: Id<StructureContainer>
    /**
     * 该矿的 link id
     */
    linkId?: Id<StructureLink>
    /**
     * 绑定的矿工
     */
    harvester: string[]
    /**
     * 空闲的位置数量
     */
    freePos: number
    /**
     * 该位置是否危险（被敌人打掉，差不多等同于不在墙内）
     * 该属性用于战争时期判断该矿能否安全开采
     */
    isDanger?: boolean
}

/**
 * harvester 数据
 */
export interface HarvesterData {
    /**
     * 周围建筑id
     */
    aroundStructIds?: Id<StructureExtension | StructureTower | StructureSpawn>[]
}

declare global {
    interface RoomMemory {
        source: {
            [key: Id<Source>]: SourceInfo
        }
    }
}
